# 19、创建一个doYunSuan模块，在该模块下创建DoYunSuan类，
# 在该类下分别定义加、减、乘、除 函数，且分别有参数及返回值。
import os.path

import openpyxl
from openpyxl.workbook import Workbook
from openpyxl.worksheet.worksheet import Worksheet

from config.conf import data_path
from tools.doLog import DoLog

doLog=DoLog()
myLog=doLog.getLogger(__name__)





# 要求：
# 1.整个过程中若出现异常，需要捕获异常
#
# 19、
# 在doFile包的data_page.py下创建一个DoFile类，定义一个readTxt，writeTxt方法，并完成以下内容
# 在17题的基础上，分别将班级1的内容写入到cls1.txt，cls2.txt中，然后再读取打印出来
class DoFile():
    def readTxt(self,fname):
        try:
            # myfiles =rf"F:\wenjian\python project\datas\{fname}.txt"
            myfiles = os.path.join(data_path,f'{fname}')
            with open(myfiles,mode='r',encoding='utf-8') as f:
                red= f.read()
                print(red)
        except Exception as e:
            print(f"发生了异常异常的信息是{e}")
            myLog.error(f"发生了异常异常的信息是{e}")
        else:
            print("处理结束，不知道有没有发生异常")
            myLog.info("处理结束，不知道有没有发生异常")
            return red

    def writeTxt(self,fname,txt):
        try:
         # myfiles = rf"F:\wenjian\python project\datas\{fname}.txt"
            myfiles = os.path.join(data_path,f'{fname}')
            with open(myfiles, mode='w', encoding='utf-8') as f:
                ad=f.write(f"{txt}")
            with open(myfiles, mode='r', encoding='utf-8') as u:
                red = u.read()
                print(red)

        except Exception as e:
            print(f"发生了异常异常的信息是{e}")
            print(f"发生了异常异常的信息是{e}")

        else:
            print("处理结束，不知道有没有发生异常")
            myLog.info("处理结束，不知道有没有发生异常")
            return red
# if __name__ == '__main__':
#     class1=DoFile()
#     class1.writeTxt(1,"高三一班,30,理科班,[40,90,100,70,69,77]")
#     class2 = DoFile()
#     class2    .writeTxt(2, "高三二班,31,理科班,[40,90,100,70,69,77]")
# #
# 20、
# 创建工作簿wExcel，在doFile包的data_page.py下创建一个DoFile类，在类中定义readExcel，readExcelByRowCol，writeExcel函数
# 在writeExcel中新增一个sheet，名称wtest
# 在wtest中，分别输入：
# mes1 mes2
# 你好   helloword
# 读取wExcel中的wtest的内容，并打印



class DoFile():
    def readExcel(self,fname):
        try:
            # myfiles=rf"F:\wenjian\pythonProject2\datas\{fname}"
            myfiles = os.path.join(data_path,f'{fname}')
            wk:Workbook=openpyxl.load_workbook(myfiles,read_only=True)
            ad:Worksheet=wk["加"]
            print(ad.values)
        except Exception as e:
            print(f"发生了异常异常的信息是{e}")
            print(f"发生了异常异常的信息是{e}")

        else:
            print("处理结束，不知道有没有发生异常")
            l = [i for i in ad.values]
            myLog.info("处理结束，不知道有没有发生异常")
            return l
    def readExcelByRowCol(self,fname,wtest,maxr,minr,maxc,minc):
        try:
            # myfiles = rf"F:\wenjian\pythonProject2\datas\{fname}"
            myfiles = os.path.join(data_path,f'{fname}')
            wk: Workbook = openpyxl.load_workbook(myfiles, read_only=True)
            ad: Worksheet = wk[wtest]
            print(ad.values)
        except Exception as e:
             print(f"发生了异常异常的信息是{e}")


        else:
            print("处理结束，不知道有没有发生异常")
            l = [i for i in ad.iter_rows(maxr, minr, maxc, minc, values_only=True)]
            print(l)
            myLog.info("处理结束，不知道有没有发生异常")
            return l

    def writeExcel(self,fname):
        wk=openpyxl.Workbook()
        st: Worksheet = wk.create_sheet("wtest")
        st.cell(1,1,"你好")
        st.cell(1,2,"helloword")
        # myfiles = rf"F:\wenjian\pythonProject2\datas\{fname}"
        myfiles = os.path.join(data_path,f'{fname}')
        wk.save(myfiles)
# if __name__ == '__main__':
#     cd=DoFile()
# #     cd.writeExcel("zuoye.xlsx")
#     cd.readExcel("cs.xlsx")
#     cd.readExcelByRowCol("zuoye.xlsx",1,1,1,2)
#     df = DoFile()
#     l = df.readExcelByRowCol("cs.xlsx", "Sheet1", 2, 8, 2, 4)
#     print(l)